<!DOCTYPE html>
<!--suppress ALL -->
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>average(平均)</title>
</head>
<body>
<h4>
    Returns the average of two or more numbers.
    Use Array.reduce() to add each value to an accumulator,
    initialized with a value of 0, divide by the length of the array.
</h4>
<h4>
    Array.reduce() 方法把一个函数作用在数组的元素上面,这个函数必须接收两个参数并返回一个新的参数
    reduce() 方法把函数返回值和序列的下一个元素做这个函数新的参数并再一次回调，最终计算为一个值
    reduce() 可以作为一个高阶函数，用于函数的 compose
    注意: reduce() 对于空数组是不会执行回调函数的
</h4>
<script type="text/javascript">

    const average = (...nums) => [...nums].reduce(
        //0是reduce传递给(acc, val)函数的第一个参数初始值,也就是acc参数的默认值,同时也是返回参数类型,可填可不填
        (acc, val) => acc + val, 0) / nums.length;
    console.log(average(...[1, 2, 3]));//这里的运算就是(1+2+3)/2,所以输出是:2
</script>
</body>
</html>